<?php
/**
 * Базовый контролер.
 * 
 * @author nrnwest@gmail.com
 *
 */
class Arm_Controller_Action extends Zend_Controller_Action
{

    /**
     * Метод для отображения системных страниц.
     * Его можно переопределить в любом контролере
     * если нужны преобработка выводимого контента.
     */
    public function armpageAction()
    {
      
    }
    
   /**
     * Return the Request object
     *
     * @return Zend_Controller_Request_Http
     */
    public function getRequest()
    {
       return $this->_request;
    }
    
    /**
     * Установка сообщения через помощник FlashMessenger
     * 
     * @param string $message
     */
    public function addFlashMessender ($message, $error=false)
    {
        if($error) {
            $message = '<div class="systemMessageError">' . $message . '</div>';
        } else {
            $message = '<div class="systemMessage">' . $message . '</div>';
        }
        $this->_helper->getHelper('FlashMessenger')->addMessage($message);
        return;
    }
    
    
    /**
     * Устанавливает данные страницы (arp_page) в объект вида. 
     * @param string $uri url страницы
     */
    public function setDataPageView($uri=null)
    {
        if($uri === null) {
            $uri = $this->getRequest()->getParam('armurlpage');
        }
       
        $page = new Arm_Page();
        $data = $page->getPage($uri);
        if($data === false) {
            throw new Arm_Exception(Arm_Translate::_('Не существует страницы, url  "%s"', $this->getRequest()->getRequestUri()), 404);
        }
        $this->view->assign($data);
        return;     
    }
    
   
    /**
     * Отключения viewRender и layout
     * @param bool $viewRender true выполнения скриптов вида будет отключено
     * @param bool $layout true будет отключено выполнения layout
     */
    public function disableViewRenderLayout($viewRender=true, $layout=true)
    {
        if($layout) {
            if (null !== ($layout = Zend_Layout::getMvcInstance())) {
                $layout->disableLayout();
            }
        }
        if($viewRender) {
            Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setNoRender(true);
        }
    }
    
    /**
     * Возвращает все данные POST, полученные с запроса пользвоателя.
     * 
     * @return array если post данных нету значит пустой масив.
     */
    public function getPost()
    {
        return $this->getRequest()->getPost();
    }
}